/*=========================================================================

Program:   Medical Imaging & Interaction Toolkit
Language:  C++
Date:      $Date: 2010-02-10 23:22:10 +0800 (周三, 10 二月 2010) $
Version:   $Revision: 21278 $

Copyright (c) German Cancer Research Center, Division of Medical and
Biological Informatics. All rights reserved.
See MITKCopyright.txt or http://www.mitk.org/copyright.html for details.

This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.  See the above copyright notices for more information.

=========================================================================*/


#ifndef _WxObjectOrientationMarkerMapperOverlay_H_HEADER_INCLUDED
#define _WxObjectOrientationMarkerMapperOverlay_H_HEADER_INCLUDED

#include "mitkCommon.h"
#include "WxExtentionExports.h"
#include "mitkGLMapper2D.h"
#include "WxObjectOrientationMarker.h"


namespace mitk {

class BaseRenderer;

/** 
 * @brief OpenGL-based mapper to display a ObjectOrientationMarker Overlay
 *
 * @ingroup Mapper
 */
class WxExtention_EXPORT WxObjectOrientationMarkerMapperOverlay : public GLMapper2D
{
public:
    
    mitkClassMacro(WxObjectOrientationMarkerMapperOverlay, Mapper2D);

    itkNewMacro(Self);

    /**
     * reimplemented from Baseclass
     */
    virtual void MitkRenderOpaqueGeometry(mitk::BaseRenderer* renderer){}
    virtual void MitkRenderTranslucentGeometry(mitk::BaseRenderer* renderer){}
#if ( ( VTK_MAJOR_VERSION >= 5 ) && ( VTK_MINOR_VERSION>=2)  )
    void MitkRenderVolumetricGeometry(mitk::BaseRenderer* renderer){}
#endif
    virtual void MitkRenderOverlay(mitk::BaseRenderer* renderer)
    {
        if(IsVisible(renderer)==false)
          return;
        Paint(renderer);
    }

    virtual void Paint(BaseRenderer * renderer);    
    static void SetDefaultProperties(mitk::DataNode* node, mitk::BaseRenderer* renderer = NULL, bool overwrite = false);

protected:
    WxObjectOrientationMarkerMapperOverlay();
    virtual ~WxObjectOrientationMarkerMapperOverlay();
};

} // namespace mitk



#endif /* WxObjectOrientationMarkerMapperOverlay_H_HEADER_INCLUDED */
